Application software for a digital signal processor or any other semiconductor device having an embedded processor may be stored in the on-chip flash or ROM memory of the device. Because the application software may have value, access to the application software should be restricted. In many applications, there is an increasing need to have code security once the application code is fully developed and released to production. In this instance, security is defined with respect to read access to on-chip program memory. If access to the application software of the device by components of the semiconductor device, other than the processor core, is not restricted, there is a possibility that a customer of the device may be able to alter or copy the proprietary application software stored in on-chip memory. Unauthorized alterations to the application software of a semiconductor device may negatively affect the operation of the device. Unauthorized copying of the application software of the device may permit a customer or user of the device to copy the application software or algorithms stored in the semiconductor device to other semiconductor devices or applications.
One potential solution to the problem of unauthorized access to the application software of the device involves physically or logically sealing the device once the application software has been loaded to the on-chip memory of the device. Although this technique prevents unauthorized access to the application software of the device, this technique necessarily also prevents authorized access, necessarily preventing both unauthorized and authorized users from altering the application software. Once a device has been sealed, the manufacturer cannot communicate with the program space of the device to perform failure analysis or other debugging functions. An irreversible security scheme will prevent any changes to the software of the program space.